if (action_muxer_query_action (muxer, name,
&enabled, ¶meter_type,
- NULL, NULL, &state, FALSE))
+ NULL, NULL, &state, TRUE))
{
gtk_action_muxer_action_added (muxer, name, parameter_type, enabled, state);
g_clear_pointer (&state, g_variant_unref);
}
- else if (muxer->parent)
- {
- if (action_muxer_query_action (muxer->parent, name,
- &enabled, ¶meter_type,
- NULL, NULL, &state, FALSE))
- {
- gtk_action_muxer_action_added (muxer, name, parameter_type, enabled, state);
- g_clear_pointer (&state, g_variant_unref);
- }
+ if (muxer->parent)
+ {
gtk_action_observable_register_observer (GTK_ACTION_OBSERVABLE (muxer->parent),
name,
GTK_ACTION_OBSERVER (muxer));
gboolean enabled,
GVariant *state)
{
+ if (action_muxer_query_action (GTK_ACTION_MUXER (observer), action_name,
+ NULL, NULL, NULL, NULL, NULL, FALSE))
+ return;
+
gtk_action_muxer_action_added (GTK_ACTION_MUXER (observer),
action_name,
parameter_type,
GtkActionObservable *observable,
const char *action_name)
{
+ if (action_muxer_query_action (GTK_ACTION_MUXER (observer), action_name,
+ NULL, NULL, NULL, NULL, NULL, FALSE))
+ return;
+
gtk_action_muxer_action_removed (GTK_ACTION_MUXER (observer), action_name);
}
const char *action_name,
gboolean enabled)
{
+ if (action_muxer_query_action (GTK_ACTION_MUXER (observer), action_name,
+ NULL, NULL, NULL, NULL, NULL, FALSE))
+ return;
+
gtk_action_muxer_action_enabled_changed (GTK_ACTION_MUXER (observer), action_name, enabled);
}
const char *action_name,
GVariant *state)
{
+ if (action_muxer_query_action (GTK_ACTION_MUXER (observer), action_name,
+ NULL, NULL, NULL, NULL, NULL, FALSE))
+ return;
+
gtk_action_muxer_action_state_changed (GTK_ACTION_MUXER (observer), action_name, state);
}